1. Field of the Invention
The present invention relates to information retrieval and, more particularly, to accelerated retrieval of content information over a network.
2. Description of the Related Art
The Internet is a resource for tremendous amounts of content information. As examples, the content information can include text, images or other types of data. A user normally accesses the Internet using a connection provided by a modem and a regular telephone line or ISDN line, or by a T1 line or leased line. The connection to the Internet may be indirectly through an Internet Service Provider (ISP) or more directly to the Internet (or World Wide Web). The higher the bandwidth supported by the connection, the better the responsiveness of the Internet to the user""s requests. For example, since a T1 line offers substantially greater bandwidth than does a 28.8 kbps modem and regular telephone line, the connection to the Internet provided by the T1 line will provide substantially faster responsiveness to a user""s requests than would the 28.8 kbps modem.
Internet proxy servers have been used to allow multiple users to share Internet access through a common high speed connection. Shared connections facilitate providing firewalls to prevent unauthorized access into the user""s (e.g., corporate) internal computers. These shared connections can also provide the Hypertext Transfer Protocol (HTTP) caching to allow improved responsiveness. Examples of such Internet proxy servers are (1) WinGate available from Deerfield Communications Company and (2) Microsoft Proxy Server available from Microsoft Corporation.
HTTP caching operates to locally store frequently accessed Internet material so that it becomes quickly available when subsequently requested. HTTP caching is described in the Hypertext Transfer Protocol (HTTP), version 1.1, which is hereby incorporated by reference. Such caching enables an organization to more efficiently share the bandwidth of the Internet connection. These Internet proxy servers can also provide site filtering to prevent user (behind the Internet proxy server) access to certain Internet sites.
Content negotiation is also known and described in the HTTP, version 1.1. Content negotiation is the process in which a HTTP response to a HTTP request is chosen to be that which is most suitable, assuming of course that there is a choice. The content negotiation can be client-driven or server-driven. The content differences being negotiated can vary widely but are nevertheless stored on a content server on the Internet. As an example, the content differences could be different languages or different size images. In such a case, a client may negotiate on behalf of a user with a server to receive smaller images instead of commonly provided larger images from the server. If the server can provide the smaller images, then the user is able to receive and display the information (here, images) faster than had their been no choice or no negotiation. Thus, in some cases, the negotiation facilitates improved bandwidth utilization and responsiveness of the Internet.
One problem with the conventional approaches to content delivery over the Internet is that most content servers do not offer multiple versions of information content. As a result, content negotiation, even if available, is not supported by most content servers. There are also no standards on what types of versions or variations of information content a content server should make available. Consequently, content negotiation is difficult to obtain over the Internet.
Another problem is that while caching can improve responsiveness of the Internet to requests, it speeds only subsequent requests for the same information from a shared Internet connection. As a result, there is never any performance improvement for initial requests for information content from the Internet.
Thus, there is a need for improved techniques for rapid and efficient delivery of information content from the Internet to a user.
Broadly speaking, the invention relates to improved techniques for rapid and efficient delivery of objects from a network (e.g., the Internet) to users. The improved techniques can be utilized in a variety of apparatuses, including a proxy system or an acceleration apparatus. Such a proxy system operates to produce an accelerated version of content information from the network, cache the accelerated version (and possibly original versions) for subsequent requests for the same information content, and supply the accelerated version of the information content to a requesting user.
The invention can be implemented in numerous ways, including as a system, an apparatus, a method, or a computer readable medium. Several embodiments of the invention are summarized below.
As a method for improving delivery time of images from a remote content server to a user""s network browser via a network, one embodiment of the invention includes the acts of: receiving an image request from the user""s network browser at a proxy server; determining whether an accelerated version of the image request is available for delivery from an image store associated with the proxy server; delivering the accelerated version of the image request from the image store to the user""s network browser when the determining act determines that the accelerated version of the image request is available for delivery from an image store; determining whether an original version of the image request is available for delivery from the image store associated with the proxy server; and delivering the original version of the image request from the image store to the user""s network browser when the determining act determines that the accelerated version of the image request is not available for delivery from an image store and when the determining act determines that the original version of the image request is available for delivery from the image store.
As a method for producing accelerated versions of objects, one embodiment of the invention includes the acts of: monitoring data transmissions between a network and a computer coupled to the network; identifying an object associated with the data transmissions that the computer will likely request from the network; prefetching the object from a remote content server on the network; producing an accelerated version of the object; intercepting a request for the object from the monitored data transmissions between the computer to the remote content server; and satisfying the request by supplying the accelerated version of the object to the computer making the request.
As a computer readable medium storing program instructions for improving delivery time of images from a remote content server to a user""s network browser via a network, an embodiment of the invention includes: program instructions for receiving an image request from the user""s network browser at a proxy server; program instructions for determining whether an accelerated version of the image request is available for delivery from an image store associated with the proxy server; program instructions for delivering the accelerated version of the image request from the image store to the user""s network browser when the program instructions for determining determine that the accelerated version of the image request is available for delivery from an image store; program instructions for determining whether an original version of the image request is available for delivery from the image store associated with the proxy server; and program instructions for delivering the original version of the image request from the image store to the user""s network browser when the program instructions for determining determines that the accelerated version of the image request is not available for delivery from an image store and when the program instructions for determining determines that the original version of the image request is available for delivery from the image store.
As a computer readable medium storing program instructions for producing accelerated versions of objects, an embodiment of the invention includes: program instructions for monitoring data transmissions between a network and a computer coupled to the network; program instructions for identifying an object associated with the data transmissions that the computer will likely request from the network; program instructions for prefetching the object from a remote content server on the network; program instructions for producing an accelerated version of the object; program instructions for intercepting a request for the object from the monitored data transmissions between the computer to the remote content server; and program instructions for satisfying the request by supplying the accelerated version of the object to the computer making the request.
As a computer readable medium storing program instructions for displaying a command bar on a web page to be displayed on a display device associated with a computer, an embodiment of the invention includes: program instructions for identifying a web page to be displayed on the display device, and program instructions for modifying the web page to add a command bar to the web page. When the web page is displayed in the display device, the command bar visually indicates whether the web page or a portion thereof being displayed is an accelerated version or an unaccelerated version.
The advantages of the invention are numerous. One advantage of the invention is that substantial performance gains in responsiveness and bandwidth utilization are achieved with the invention. Another advantage of the invention is that accelerated versions of content information are produced and cached locally so that content servers need not concern themselves with offering and supporting multiple versions of the content provided on their content servers. Yet another advantage is that initial requests for content not yet cached locally may also be provided with improved responsiveness.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.